GestLab représente une amélioration majeure de Gestalt.Appl, deux outils freeware de JP Curcio consacrés au Gestalt Manager du Mac OS. La dernière version de ces deux applications peut être trouvée (en anglais ou en français) sur le site http://www.rgaros.nl/gestalt/index.html#appl.
Les points suivants seront traités dans cette doc :
• Éléments requis
• Recherche d’information et base de données dynamique
• Fenêtre principale = configuration locale
• Fenêtre base de données
• Fenêtre d’informations
• Configurations virtuelles
• Compaison de deux configurations
• Pseudo-sélecteurs
• Démarrage sécurisé (en cas d’erreur système au lancement de GestLab)
• Bulles d’aide
• Liste des choses à faire (à condition d’avoir assez de temps)
• Bogues connues
• Histo
Attention, si votre configuration affiche des sélecteurs qui ne sont pas dans la base de données de GestLab, enregistrez cette config (Commande-S) et envoyez le fichier résultant à jpc83@calva.net. Les nouveaux sélecteurs pourront alors être ajoutés à la base de données et seront présents dans la version suivante de GestLab.
Merci pour votre collaboration !
À noter : comme un fichier config peut contenir des caractères non ASCII, il doit être binhexé avant d’être envoyé via Internet. Pour binhexer un fichier et le compacter, vous pouvez utiliser une version correctement configurée de l’utilitaire DropStuff d’Aladdin.
Éléments requis
GestLab requiert la présence de l’Appearance Manager 1.0.1 (fourni avec Mac OS 8.1). S’il n’est pas présent, vous pourrez seulement enregistrer votre configuration et la visualiser sur une autre machine où GestLab fonctionnera. Continuez à utiliser Gestalt.Appl avec des systèmes antérieurs au 8.1, ou essayez d’installer l’Appearance Manager (à partir de Mac OS 7.1) pour utiliser GestLab. L’Appearance Manager est disponible sur le site Internet d’Apple. Les Services de Navigation sont implantés à partir de Mac OS 8.5 uniquement.
Recherche d’information et base de données dynamique
Au démarrage, GestLab recherche de l’information sur les sélecteurs présents dans la configuration mais pas dans la base de données (dite “base statique”, actuellement stockée comme un ensemble de ressources dans l’application). Si le nom du sélecteur ne correspond pas à une signature de fichier, GestLab recherche à l’intérieur de la plupart des fichiers du Dossier Système, du dossier Extensions et du dossier Tableaux de bord une chaîne de caractères identique au nom du sélecteur. Ce processus peut être très long et n’est pas sûr à 100 %. Mais quand un seul fichier est trouvé pour un sélecteur, il y a une forte probabilité que ce soit lui qui l’ait posté (voir plus loin). Désolé, ce processus n’étant pas implanté sous forme de thread, GestLab ne peut pas faire autre chose en même temps, mais on peut l’interrompre en pressant la barre d’espace et on peut également activer une autre application en le laissant se poursuivre en arrière-plan.
“Rechercher des infos sur” est aussi une commande qui peut être déclenchée à partir du menu “Données” quand la configuration locale est au premier plan, mais elle se restreint à un sélecteur à la fois (la recherche s’effectue dans la même liste de fichiers). Une recherche plus ciblée peut être avec la commande “Rechercher des infos dans le dossier…”. Si les Services de Navigation sont supportés, la recherche s’effectue sur l’ensemble des fichiers présents dans le dossier spécifié (et dans tous les dossiers imbriqués). S’ils ne sont pas présents, le dossier par défaut est le Dossier Système actif.
Toutes les informations trouvées sont stockées dans un fichier baptisé “base+” dans le même dossier que GestLab (c’est la “base de données dynamique” ou encore la “base des sélecteurs inconnus”). La prochaine fois qu’elle sera lancée, l’application GestLab examinera les infos dans ce fichier et en recherchera uniquement sur les sélecteurs qui ne s’y trouvent pas. Quand la configuration est enregistrée, une copie optimisée de la base dynamique est incluse dans le document.
Lorsque les commandes “Rechercher des infos sur” ou “Rechercher des infos dans le dossier…” sont invoquées, les infos trouvées sur un sélecteur durant cette recherche s’ajoutent aux infos précédemment stockées sur ce sélecteur, même si elles sont déjà présentes. Les infos stockées sur un sélecteur dans la base dynamique peuvent être effacées en totalité grâce à la commande “Effacer les infos” du menu “Données” (s’applique uniquement à la configuration locale).
Les infos de la base dynamique concernent les candidats potentiels au postage d’un sélecteur inconnu. Ce sont :
• une signature : seul le premier fichier dont la signature est égale au code du sélecteur est mémorisé, mais plusieurs fichiers peuvent avoir la même, donc cette info n’est pas sûre à 100 % (utiliser la commande “Rechercher des infos sur” pour compléter cette info) ;
• un data fork : le code a été trouvé dans le data fork du fichier, mais aucune relation avec le sélecteur GestLab n’est établie ;
• un resource fork : une première recherche globale a trouvé le code dans le resource fork du fichier, une seconde vérification examine chaque ressource individuellement. Pour chaque ressource qui contient le code, GestLab vérifie la présence des fonctions NewGestalt, ReplaceGestalt, NewGestaltValue, ReplaceGestaltValue ou SetGestaltValue. Ainsi, si vous voyez un fichier qui contient une ressource ‘INIT’ (ou n’importe quelle ressource avec du code exécutable à l’intérieur) avec simultanément le code et NewGestaltValue, la probabilité est très forte qu’il s’agisse du bon candidat ! La même chose dans une ressource ‘PICT’ est certainement une coïncidence ;
• un driver : GestLab au lancement cherche le code dans les 16 kilooctets qui suivent le début de chaque driver chargé en mémoire. Cette info n’est qu’indicative : il n’y a aucune garantie que le code appartienne au driver s’il est trouvé (une analyse plus précise avec des outils tels que MacsBug est requise). La recherche sur driver peut être lancée en utilisant la combinaison cachée Commande-Contrôle-J.
Note : il n’y a aucune raison pour que le fichier “base+” enfle démesurément. Si vous trouvez une nouvelle info et que vous m’envoyez votre configuration, la version suivante de GestLab l’inclura et vous pourrez alors effacer cette info de la base dynamique (ou même le fichier “base+” lui-même).
Quand le code ne peut pas être trouvé dans les fichiers ciblés ou dans les drivers, la seule info stockée sur le sélecteur inconnu est son type de résultat : pointeur Mac OS, handle Mac OS ou type inconnu. Pourquoi est-il impossible de déterminer l’origine de certains sélecteurs ? Parce que le code peut résider dans une ressource compressée, le code est parfois coupé en deux par le compilateur, le code peut être construit à la volée, etc. Dans ces cas, la meilleure façon est de jouer avec les extensions : relancer la machine avec et sans une extension pour voir si le sélecteur Gestalt inconnu est posté ou non. La base dynamique n’a aucune idée de ces manipulations.
Fenêtre principale = configuration locale
La première fenêtre ouverte par GestLab est la configuration locale. Six choix sont possibles dans la liste des sélecteurs sur la gauche (dite liste principale) :
• Config Gestalt pure : tous les sélecteurs connus par le Gestalt Manager au moment où GestLab a démarré. Si un sélecteur n’est pas présent dans la base de données statique, il apparaît en rouge. S’il renvoie une erreur, il apparaît en italique.
• Config étendue aux pseudos : c’est la même liste, à laquelle s’ajoutent les pseudo-sélecteurs (en bleu).
• Sélecteurs informatifs : cette liste inclut uniquement les sélecteurs qui n’affichent pas de l’information hexadécimale.
• Infos nouvelles ou inconnues : liste tous les sélecteurs non présents dans la base statique, certains sélecteurs présents dans la base mais dont l’origine est inconnue (merci si vous avez des idées à leur propos !), et tous les sélecteurs qui présentent une nouvelle information par comparaison avec celles contenues dans la base statique (un nouvel attribut, une nouvelle valeur dans une liste ou un nouveau numéro de version). Les informations nouvelles ou inconnues sont toujours affichées ou interprétées en rouge. Plus la base de données sera exhaustive et mise à jour, moins il y aura d’éléments dans cette liste !
• Sélecteurs à erreur : tous les sélecteurs qui renvoient une erreur dans la configuration présente (y compris les sélecteurs à effet secondaire dont la valeur n’est pas encore connue).
• Base de données dynamique : cette liste reflète le contenu du fichier “base+” pour la configuration locale, ou la base dynamique d’une configuration enregistrée.
Sur la droite se trouve la zone d’interprétation du sélecteur sélectionné dans la liste principale. Si une seconde liste apparaît dans cette zone, un ou plusieurs de ses éléments peuvent être sélectionnés. Des commentaires particuliers sont alors disponibles dans la zone d’information située en dessous. Si aucun élément n’est sélectionné, le commentaire général revient.
Ces listes sont plus présentes dans GestLab que dans Gestalt.Appl. GestLab essaie également de déterminer si certaines valeurs renvoyées représentent des pointeurs ou des handles Mac OS, et affiche le contenu de la mémoire concernée dans une zone hexadécimale. Si une valeur de type inconnu est susceptible d’être une adresse, la zone hexa est affichée avec les dix premiers kilo-octets de données démarrant à cette adresse (dump mémoire).
La fenêtre est redimensionnable. Quand la taille n’est pas minimale, les zones à l’intérieur de la fenêtre peuvent aussi être redimensionnées, grâce à deux séparateurs (mais seul le séparateur horizontal est réellement utile). La position et la taille de cette fenêtre et de ses zones sont stockées dans le fichier GestLab Prefs (créé dans le même dossier que GestLab, mais vous pouvez le glisser dans le dossier Préférences si vous le voulez).
La valeur de chaque sélecteur de la configuration locale (sauf ceux qui sont connus pour présenter un effet secondaire gênant quand ils sont appelés) est calculée une seule fois, quand GestLab démarre. Si vous pensez que la valeur d’un sélecteur a changé depuis (ou si vous souhaitez connaître malgré tout la valeur d’un sélecteur à effet secondaire), sélectionnez son code et lancez la commande “Valeur Gestalt de” à partir du menu “Données”. On peut aussi mettre à jour la configuration tout entière en invoquant la commande “Rafraîchir la config” dans le même menu. Si des fenêtres de comparaison sont attachées à la configuration locale, elles seront également mises à jour.
Fenêtre base de données
Assise sur le même modèle que la fenêtre principale, elle affiche les données de la base statique. La liste exhaustive des sélecteurs peut être triée par code (ordre alphabétique) ou par date (cela permet de visualiser les sélecteurs les plus récents ajoutés dans la base). On peut également afficher des listes limitées basées sur n’importe quelle combinaison de types de sélecteurs ou de flags de sélecteurs.
La valeur associée à un sélecteur est utilisée pour déterminer si une information est nouvelle. Quand cette valeur est nulle, soit aucune comparaison n’a lieu (cas des valeurs simples telles qu’un numéro de version), soit un algorithme de recherche est utilisé (cas des valeurs à retrouver dans une liste).
Les commandes “Chercher…” et “Chercher encore” permettent de rechercher une chaîne de caractères exacte (pas de caractère joker) dans la base statique, quand sa fenêtre est au premier plan. Un “Chercher…” peut démarrer soit sur le premier sélecteur, soit sur celui qui est actuellement sélectionné, et la recherche boucle sur tous les sélecteurs affichés dans la liste. “Chercher encore” démarre toujours sur le sélecteur sélectionné. Le fait d’appuyer sur n’importe quelle touche interrompt le processus de recherche en cours.
Les préférences sur la fenêtre base de données sont mémorisées indépendamment de celles de la fenêtre principale. Elles concernent sa position et si la fenêtre était visible ou non à la dernière fermeture de GestLab.
Fenêtre d’informations
Son rôle principal est l’affichage et la modification du titre interne et du commentaire associés aux configurations virtuelles. Ces infos ne sont pas conservées pour la configuration locale si celle-ci n’est pas enregistrée, elles sont automatiquement enregistrées sur les autres configurations.
Le titre interne est une chaîne de 63 caractères associée à n’importe quelle configuration simple. Il peut être différent de celui de la fenêtre (qui est lui-même identique à celui du fichier stocké sur disque). Il est utilisé pour identifier une configuration dans une fenêtre de comparaison, et sera utilisé encore plus intensivement dans une future version.
Le commentaire est libre mais limité à 255 caractères. Il peut être associé à n’importe quelle configuration simple ou n’importe quel document composite (pour l’instant, uniquement des comparaisons).
Si le document au premier plan est ouvert à partir d’un fichier, les autres champs indiquent le chemin d’accès du fichier, la version de l’application qui l’a enregistré et quand. Pour une comparaison, le titre des deux fenêtres (plutôt que le titre interne) est aussi affiché. À noter : le menu local qui affiche le chemin d’accès devient actif si un utilitaire tel que FinderPop de Turlough O’Connor est installé.
En dépit de son apparence, ce n’est pas une fenêtre flottante (devrait-elle avoir l’apparence d’une fenêtre standard ?). Les infos sont données sur la fenêtre la plus en avant-plan qui n’est pas la fenêtre d’infos. GestLab mémorise la visibilité et la position de cette fenêtre, et ajuste sa taille automatiquement.
Configurations virtuelles
N’importe quelle configuration simple peut être exportée sous forme de texte pour nourrir une base de données externe ou être imprimée par SimpleText. La configuration locale peut être enregistrée pour être ouverte plus tard.
Dans cette version, une configuration virtuelle mémorise :
• les valeurs simples renvoyées par les sélecteurs ;
• les données associées aux pseudo-sélecteurs (la liste des extensions, des tableaux de bord et des pilotes est stockée pour une meilleure analyse de la configuration) ;
• les données associées aux sélecteurs structurés ;
• les 24 premiers octets trouvés à l’adresse renvoyée par certains sélecteurs (pointeurs, handles, etc., chaque fois que GestLab affiche une zone hexadécimale) ;
• les infos affichées dans la fenêtre d’informations ;
• une partie de la base de données dynamique, limitée aux sélecteurs présents dans la configuration locale au moment de son enregistrement.
L’action d’enregistrement peut paraître longue. C’est parce que le numéro de version de chaque extension et tableau de bord est lu à partir du disque et mémorisé dans la configuration virtuelle.
Ainsi, même si la configuration locale réelle continue de donner davantage d’informations que la configuration virtuelle associée, celle-ci mémorise assez de données pour permettre une analyse à distance sans devenir trop volumineuse (une configuration virtuelle pèse généralement moins de 16 Ko, sauf si des tonnes d’extensions sont présentes dans le Dossier Système).
Les configurations virtuelles créées par GestLab ne peuvent pas être ouvertes par Gestalt.Appl, par contre toutes les configurations créées par Gestalt.Appl peuvent être ouvertes par GestLab.
À l’ouverture, une fenêtre de configuration virtuelle hérite des réglages de la fenêtre principale. Aucune préférence n’est mémorisée pour une configuration virtuelle.
Comparaison de deux configurations
Dès qu’au moins une configuration virtuelle est ouverte, la commande “Comparer” du menu “Fichier” est activée. Les configurations dans les deux fenêtres les plus au premier plan sont comparées (les autres fenêtres – comparaisons, base de données, informations – sont ignorées), et une nouvelle fenêtre est affichée pour montrer explicitement les différences entre les deux configurations.
Des cases d’option permettent de limiter la liste des sélecteurs. Les niveaux sont :
• Niveau 0 : les sélecteurs renvoient exactement la même valeur ;
• Niveau 1 : la valeur renvoyée n’est pas la même, mais la différence n’est pas importante (quand la valeur est une adresse mémoire, par exemple) ;
• Niveau 2 : la valeur renvoyée n’est pas la même, mais on ne sait pas si la différence est importante ou non (s’applique aux sélecteurs inconnus) ;
• Niveau 3 : la valeur renvoyée n’est pas la même, et la différence est considérée comme importante (quand la valeur est une liste d’attributs, par exemple) ;
• Niveau 4 : un même sélecteur présente des flags différents dans les deux configurations (devrait se produire uniquement quand un sélecteur est posté alternativement par les fonctions NewGestalt et NewGestaltValue, par exemple le sélecteur de mémoire virtuelle ‘vm ’);
• Niveau 5 : un même sélecteur renvoie une valeur correcte dans une configuration et une erreur dans l’autre ;
• Niveau 6 : le sélecteur est présent dans une seule configuration.
Dans GestLab, quatre pseudo-sélecteurs sont des listes de fichiers : ‘Cdvƒ’, ‘Extƒ’, ‘Sysƒ’ and ‘Prœ#’ (voir la section suivante). Lorsqu’on double-clique sur l’un de ces pseudo-sélecteurs à partir de la fenêtre de comparaison (ils présentent un fond bleu), on ouvre une sous-fenêtre qui montre explicitement les différences entre les listes de fichiers en provenance des deux configurations (les sous-fenêtres sont automatiquement fermées quand la comparaison l’est).
Ici aussi, des cases d’option permettent de limiter la liste des fichiers. Les niveaux sont :
• Niveau 0 : les fichiers sont identiques : même nom, même numéro de version, même type, même signature ;
• Niveau 1 : les fichiers ont même numéro de version, même type, même signature, mais diffèrent par le nom (ceci arrive principalement en comparant deux configurations issues de systèmes étrangers, une config US et une config française, par exemple). Ce niveau s’applique seulement quand le couple type-signature est unique dans la liste ;
• Niveau 2 : les fichiers ont même nom, même type, même signature, mais un numéro de version est inconnu ;
• Niveau 3 : les fichiers ont même nom, même type, même signature, mais les deux numéros de version sont connus et ils sont différents ;
• Niveau 4 : le fichier est présent dans une seule configuration. À noter, si le couple type-signature n’est pas unique, les fichiers dont le nom diffère sont considérés absents de l’autre configuration (le fond est jaune quand le couple est unique, magenta sinon).
Comparer les fichiers extensions, les tableaux de bord et les process actifs est un moyen de mieux déterminer l’origine d’un sélecteur inconnu.
Si vous voulez connaître l’impact d’une extension sur la table Gestalt, enregistrez la configuration, redémarrez la machine sans cette extension et comparez la configuration enregistrée avec la nouvelle configuration locale. Idem pour tester les impacts d’une nouvelle version système.
Note : une fenêtre de comparaison “live” (ie une fenêtre ouverte non pas à partir d’un fichier mais de la commande “Comparer”) est toujours la fille de deux autres fenêtres. Si la fenêtre de l’une des deux configurations parentes est fermée, la comparaison associée est aussitôt fermée (sans demander si elle doit être enregistrée).
Le contenu d’une fenêtre de comparaison peut être enregistré (le fichier contient alors une image des deux configurations). Quand on ouvre ce fichier, on n’a plus affaire à une comparaison “live”, mais à une comparaison “statique” qui n’est la fille d’aucune fenêtre, mais potentiellement la mère de deux fenêtres de configuration. Si vous cliquez les boutons qui affichent le titre interne des deux configurations stockées dans la comparaison, les fenêtres affichant ces configurations simples sont rendues visibles et actives. Il est alors possible de les réenregistrer en tant que configurations simples indépendantes.
Quand le code d’un sélecteur est sélectionné dans une fenêtre de comparaison, ce même code est aussi sélectionné dans les fenêtres associées, si disponible. Intéressant avec un grand écran, car cela permet un affichage synchronisé de deux configurations.
Il est possible d’ouvrir ou de calculer plusieurs fenêtres de comparaison.
La commande “Exporter en texte…” est disponible pour permettre l’impression par SimpleText. Aucune préférence n’est mémorisée pour une fenêtre de comparaison.
Pseudo-sélecteurs
Les pseudo-sélecteurs ressemblent à des sélecteurs Gestalt, mais n’en sont pas. Ils sont fournis par GestLab pour davantage d’information ou usage interne.
• ‘Frq2’ calcule la fréquence du processeur en se basant sur un algorithme différent de celui utilisé par le sélecteur ‘pclk’ d’Apple. Si les résultats sont différents, les deux sont affichés. Il utilise le pseudo-sélecteur ‘Prc#’ qui compte le nombre de processeurs actifs.
• ‘Sndv’ renvoie le numéro de version du Sound Manager.
• ‘Cdvƒ’ liste le contenu du dossier Tableaux de bord (les fichiers uniquement) au moment où le sélecteur est affiché. Cette liste est utilisée par la commande “Rechercher des infos sur”. Il est à noter que le contenu de ce dossier peut avoir changé entre le démarrage de la machine, le lancement de GestLab et maintenant. Lorsqu’on sélectionne un élément dans la liste, sa version est affichée (le contenu des ressources ‘vers’ à partir de la configuration locale, le seul numéro de version à partir d’une configuration virtuelle).
• ‘Extƒ’ liste le contenu du dossier Extensions au moment où le sélecteur est affiché (sauf certains fichiers tels que les Guides Apple). Mêmes remarques que pour ‘Cdvƒ’.
• ‘Sysƒ’ liste le contenu du Dossier Système au moment où le sélecteur est affiché (sauf certains fichiers tels que les Guides Apple). Mêmes remarques que pour ‘Cdvƒ’.
• ‘Prœ#’ liste tous les process actifs au moment où le sélecteur est affiché. Cette liste est utilisée uniquement pour une recherche par signature.
• ‘Drv#’ liste tous les pilotes (drivers) actifs au moment où le sélecteur est affiché. Les utilisateurs expérimentés peuvent utiliser les adresses affichées dans cette liste pour rechercher l’origine d’un sélecteur inconnu avec MacsBug en désassemblant le code machine à partir de ces adresses. Les autres peuvent essayer la combinaison Commande-Contrôle-J pour rechercher dans les 16 premiers kilo-octets à partir de chacune de ces adresses une chaîne qui contient le code du sélecteur Gestalt sélectionné, mais même si cette chaîne est trouvée, on ne peut pas être sûr qu’on est encore dans le code du pilote ni que cela indique un sélecteur posté par les fonctions NewGestalt ou NewGestaltValue.
• ‘Tabl’ liste tous les sélecteurs Gestalt postés, avec leur origine (les fonctions NewGestalt ou NewGestaltValue). Cette liste reflète la vraie table Gestalt. On peut double-cliquer sur un élément pour sélectionner le code correspondant dans la liste principale.
• ‘$00000001’ affiche un aperçu rapide de la configuration. Son code a été choisi pour qu’il soit le premier de la liste, de sorte que cette info est affichée dès que n’importe quelle configuration simple est ouverte.
Démarrage sécurisé
Quand GestLab est lancé, il cherche chaque sélecteur présent dans la configuration système. Certains sélecteurs sont postés “par valeur” (en utilisant la fonction NewGestaltValue), les autres (postés par la fonction NewGestalt) pointent sur une Gestalt DEFinition procedure, et cette procédure GDEF est appelée implicitement par GestLab, sauf si un flag précis (baptisé “effet secondaire”) associé au sélecteur donné dans la base statique est positionné (par exemple, le sélecteur ‘VrkS’ de l’anti-virus Virex).
Parfois, une procédure GDEF est boguée, et son appel résulte en un crash au lancement de GestLab. Si cela arrive, vous pouvez penser que c’est de la faute à GestLab, mais ce n’est pas vrai. Essayez alors de relancer GestLab en appuyant sur la touche Majuscule aussitôt que possible : GestLab n’appelle alors plus aucune procédure GDEF. Effet induit : GestLab ne peut plus afficher la valeur renvoyée par les sélecteurs qui ont été postés par la fonction NewGestalt (une erreur -2 est affichée à la place), et vous devez lancer la commande “Valeur Gestalt de” sur chaque sélecteur concerné si vous voulez la connaître (la commande “Rafraîchir la config” est inopérante dans ce cas).
Le démarrage sécurisé est intéressant uniquement pour déterminer quelle GDEF est boguée (vous provoquerez un crash en invoquant “Valeur Gestalt de” sur le mauvais sélecteur). Enregistrer la configuration après un démarrage sécurisé n’est pas très utile car la valeur renvoyée par de nombreux sélecteurs est inconnue.
Si le mécanisme utilisé par le pseudo-sélecteur ‘Tabl’ ne fonctionne pas (il emploie des fonctionnalités non documentées par Apple), le démarrage sécurisé n’est pas disponible et GestLab revient à l’ancienne méthode de lancement basée sur le vrai sélecteur Gestalt ‘tabl’, et l’origine des sélecteurs (NewGestalt ou NewGestaltValue) est alors inconnue.
Si une erreur système intervient au lancement de GestLab même lors d’un démarrage sécurisé, essayez de jeter les fichiers “GestLab Prefs” et “base+” car ils pourraient avoir été corrompus.
Bulles d’aide
Pour afficher les bulles d’aide, la méthode usuelle consiste à utiliser la commande adéquate du menu Aide. GestLab fournit une méthode plus directe. Enfoncez simultanément les touches Commande et Option : les bulles d’aide sont disponibles tant que ces touches ne sont pas relâchées.
Liste des choses à faire (à condition d’avoir assez de temps)
Cette liste n’est pas exhaustive et il n’y a pas de niveau de priorité affirmé à l’intérieur :
• Support d’AppleScript
• Support des configurations distantes en réseau
• Liste certifiée des mnémoniques présents dans le fichier Gestalt.h des Universal headers
• La base statique doit être un fichier de données externe et non des ressources dans l’application
• Affichage d’une liste hiérarchique de sélecteurs pour alléger l’aspect technique de l’approche
• …
Ce point est une quête permanente :
• Toujours plus d’exhaustivité dans la base statique (envoyez vos configurations à jpc83@calva.net pour y contribuer !)
Bogues connues
J’attends vos rapports ! Mais :
• quelques fuites de mémoire à résorber (semble plus de la faute de CodeWarrior que de la mienne) ;
• quelques bogues cosmétiques quand GestLab est utilisé sur des systèmes antérieurs à Mac OS 8.5 avec l’Appearance Manager 1.0.1 (ce sont des problèmes de rafraîchissement dûs à l’Appearance Manager, corrigés par la version 1.1) ou quand Kaleidoscope est présent.
Attention : la signature de l’application a changé entre b3 et b4. Pour continuer à utiliser le même fihier de préférences, donnez-lui ‘gLab’ comme nouveau créateur (ou supprimez le fichier GestLab Prefs). Idem pour les documents enregistrés avec les précédentes versions de GestLab si vous voulez les ouvrir par double-clic (le glisser-déposer sur l’icône de GestLab fonctionne toujours). Idem pour la base dynamique (fichier “base+”).
Pour changer la signature, faites glisser l’icône Finder des documents à convertir sur l’AppleScript “GestLab signature chg” fourni dans ce package. Désolé, cette modification aurait dû intervenir beaucoup plus tôt.
Histo
Version 1.0 (24/05/99): Meilleure analyse pour rechercher l’origine d’un sélecteur à l’intérieur des ressources (le résultat indique implicitement pour chaque fichier une probabilité d’avoir posté le sélecteur), et l’origine d’un sélecteur peut être recherchée à partir de n’importe quel dossier (voir doc). Le sélecteur ‘mnam’ est utilisé partout où c’est possible. 700 sélecteurs dans la base.
Version 1.0b4 (2/05/99): Il existe désormais des sous-fenêtres pour comparer les listes de fichiers à partir d’une comparaison (voir doc). Les sélecteurs peuvent être sélectionnés par type ou par flags dans la base statique. Les configs virtuelles s’ouvrent correctement même si la fenêtre de la configuration locale est “repliée”. Quelques autres corrections mineures. Davantage de bulles d’aide. Zoom intelligent dans les fenêtres de comparaison. La signature de l’application a changé (elle est désormais différente de celle de Gestalt.Appl) : voir ci-dessus. 665 sélecteurs dans la base.
Version 1.0b3 (5/04/99): Bulles d’aide dans les fenêtres (appuyez sur les touches Commande et Option simultanément pour les voir). Nouvelle image (due à JJ Cortes) dans la fenêtre “A propos de GestLab”. Quelques corrections mineures. 637 sélecteurs dans la base.
Version 1.0b2 (14/03/99): Ne plante plus si on utilise le menu local de la liste principale après avoir fermé une config virtuelle. On pouvait planter en affichant une zone hexadécimale suivant la valeur renvoyée par le sélecteur Gestalt. Impossible d’ouvrir une nouvelle config si la mémoire n’est pas suffisante pour permettre à GestLab de tourner correctement. Ajout du pseudo-sélecteur “Aperçu de configuration”. La base de données statique peut être triée par date. 584 sélecteurs dans la base.
Version 1.0b1 (3/03/99): Première version largement diffusée sur Internet. 579 sélecteurs dans la base.